-
-
Notifications
You must be signed in to change notification settings - Fork 8.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support GPU format/colourspace conversion #11337
base: master
Are you sure you want to change the base?
Support GPU format/colourspace conversion #11337
Conversation
033130d
to
decb9f6
Compare
Haven't tested it but this seems straight forward and simple. |
91418d6
to
1510213
Compare
c71b130
to
1f20630
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I amended this PR based on Twitch beta feedback.
Edit: Forgot to switch accounts, but whatever.
7117695
to
a6e19f0
Compare
381132f
to
1ad6865
Compare
1ad6865
to
3614283
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Commits previously using the UI:
prefix should now use frontend:
.
Unlike obs_nv12/p010_tex_active() this accurately reflects the texture availability in the mix associated with the encoder.
Use the recently added `obs_encoder_video_tex_active()` API for AMD AMF-based encoders, similar to the recent commit for obs-nvenc. This allows the OBS canvas to use non-NV12 pixel formats (such as I444) while the multitrack video encoders will use NV12 or P010 textures converted using the GPU.
Also sets Rec. 709/limited defaults for multitrack output.
7a35445
to
28858b6
Compare
Description
Extends GPU scaling to also handle colourspace or format conversions to enable shared-texture encoding with heterogenous output formats.
Motivation and Context
#11336 falls back to shared memory encoders, which are less efficient, this aims to fix that by extending the conversion capabilities.
In theory this would also allow recording HDR locally and streaming SDR, among other use cases that people might have.
Will need some additional discussion related to function naming and implemenation of the new texture availability check.
How Has This Been Tested?
Streamed to Twitch while recording 444 locally as well as streaming SDR while recording HDR locally.
This is part of the closed beta Twitch Enhanced Broadcasting build and seems to work fine so far.
Types of changes
Checklist: